using System.Collections.Generic;
using System.Diagnostics.Contracts;

namespace ShinyWizard
{
    [ContractClass(typeof(IWizardNavigatorContract))]
    public interface IWizardNavigator
    {
        WizardStep GetNextStep(IList<WizardStep> steps, WizardStep step);
        WizardStep GetPreviousStep(IList<WizardStep> steps, WizardStep step);
        bool IsNextStepAvaliable(IList<WizardStep> steps, WizardStep step);
        bool IsPreviousStepAvaliable(IList<WizardStep> steps, WizardStep step);
        bool IsNextStepAccessible(IList<WizardStep> steps, WizardStep step);
    }
}